% fname: routing_oddeven__sel_random__topology_8x8__.m
% ./noxim -routing oddeven -sel random -dimx 8 -dimy 8  -sim 10000 -warmup 2000 -size 8 8 -buffer 2 -traffic transpose1 

function [max_pir, max_throughput, min_delay] = routing_oddeven__sel_random__topology_8x8__(symbol)

data = [
%             pir      avg_delay     throughput      max_delay       rpackets         rflits
            0.008        20.9003      0.0633555            197           4054          32438
            0.008        21.5109      0.0634941            325           4067          32509
            0.008        20.7365      0.0646875            167           4140          33120
            0.008        20.5398      0.0622402            156           3983          31867
            0.008        20.2628      0.0645039            238           4128          33026
            0.008        22.4032      0.0634648            240           4063          32494
            0.008        20.8752      0.0646738            159           4142          33113
            0.008        20.8764       0.063834            147           4085          32683
            0.008        20.8264      0.0638145            151           4083          32673
            0.008        20.5079      0.0633965            148           4060          32459
            0.008        22.5568      0.0635117            380           4064          32518
            0.008        21.2435      0.0638848            147           4087          32709
            0.008        21.7866      0.0650215            197           4157          33291
            0.008        21.1646      0.0639355            230           4089          32735
            0.008        21.3534      0.0654277            174           4188          33499
            0.008        20.4301      0.0629082            179           4027          32209
            0.008        21.1205      0.0646953            195           4142          33124
            0.008        21.2928      0.0644512            229           4126          32999
            0.008        21.7664      0.0649355            190           4156          33247
            0.008        21.0024      0.0641035            195           4100          32821
           0.0088        26.1692      0.0718066            386           4597          36765
           0.0088        23.8171       0.070375            194           4506          36032
           0.0088        23.2907      0.0714004            207           4571          36557
           0.0088        25.0608       0.070875            242           4537          36288
           0.0088         25.034       0.071209            416           4560          36459
           0.0088        23.4783      0.0716602            228           4585          36690
           0.0088        23.3217      0.0687266            286           4399          35188
           0.0088        24.1771       0.069125            301           4428          35392
           0.0088        22.8969      0.0701055            190           4492          35894
           0.0088        26.2743      0.0715918            363           4579          36655
           0.0088         22.973      0.0694414            303           4443          35554
           0.0088        22.6535      0.0687109            216           4401          35180
           0.0088        24.1118      0.0711504            191           4551          36429
           0.0088        23.9086      0.0707656            347           4528          36232
           0.0088        22.8286      0.0707832            196           4532          36241
           0.0088        21.7737      0.0711484            262           4555          36428
           0.0088        24.9057      0.0705566            530           4518          36125
           0.0088        23.5971      0.0688926            211           4408          35273
           0.0088        24.1506      0.0715781            256           4582          36648
           0.0088        26.3963       0.070166            352           4492          35925
           0.0096        30.9642      0.0784102            435           5021          40146
           0.0096         26.277      0.0769395            290           4928          39393
           0.0096        26.3151      0.0755273            328           4836          38670
           0.0096        31.5914      0.0799668            811           5117          40943
           0.0096        26.4004       0.076873            742           4920          39359
           0.0096        27.1972      0.0771973            378           4939          39525
           0.0096        24.5498      0.0759961            278           4864          38910
           0.0096        25.8736      0.0759453            182           4859          38884
           0.0096        25.7219      0.0773281            335           4947          39592
           0.0096        26.7381      0.0761016            195           4872          38964
           0.0096        27.3582      0.0766914            366           4913          39266
           0.0096        27.5261      0.0770898            334           4934          39470
           0.0096        26.2281      0.0770586            315           4932          39454
           0.0096        27.2706      0.0756133            331           4841          38714
           0.0096        26.3296       0.076291            345           4881          39061
           0.0096        25.8318      0.0744453            352           4763          38116
           0.0096        25.9136       0.076041            339           4862          38933
           0.0096        29.3255      0.0758945            780           4860          38858
           0.0096         25.844      0.0748535            276           4794          38325
           0.0096         25.621      0.0750938            279           4802          38448
           0.0104           31.8      0.0821523            724           5255          42062
           0.0104        42.1442      0.0855273           1163           5472          43790
           0.0104        39.0677      0.0842266           1425           5394          43124
           0.0104        32.4028      0.0827402            345           5298          42363
           0.0104        30.6504      0.0827148            343           5298          42350
           0.0104        33.4441      0.0846523            489           5416          43342
           0.0104        41.2386       0.084084           1286           5377          43051
           0.0104         31.371      0.0848828            503           5429          43460
           0.0104        30.4276      0.0834336            417           5337          42718
           0.0104        31.7123      0.0845566            366           5409          43293
           0.0104        34.7696      0.0830781            457           5316          42536
           0.0104        29.3665        0.08425            246           5391          43136
           0.0104        31.9556      0.0832969            345           5333          42648
           0.0104        31.1914         0.0845            600           5412          43264
           0.0104        38.1116      0.0854277            467           5467          43739
           0.0104        32.9115      0.0838105            355           5366          42911
           0.0104        33.9233      0.0837344            590           5358          42872
           0.0104        30.0548      0.0855254            380           5475          43789
           0.0104        30.2062      0.0823516            397           5272          42164
           0.0104        30.2655      0.0842344            370           5389          43128
           0.0112        43.2098      0.0902598            710           5777          46213
           0.0112        37.0297      0.0909082            543           5816          46545
           0.0112        37.6117      0.0891992            499           5709          45670
           0.0112         36.273      0.0895195            580           5728          45834
           0.0112        51.2311      0.0915488            933           5860          46873
           0.0112        44.8449       0.092332            670           5906          47274
           0.0112        35.5218      0.0886348            539           5676          45381
           0.0112        36.8813      0.0907441            832           5806          46461
           0.0112        49.1006      0.0902969            870           5778          46232
           0.0112        41.9559      0.0878711           1178           5626          44990
           0.0112        77.7381      0.0908184           1675           5815          46499
           0.0112        42.8555      0.0889023            576           5689          45518
           0.0112        44.2877      0.0907148            727           5809          46446
           0.0112        43.6971       0.088998            710           5698          45567
           0.0112        42.7892      0.0888848            886           5687          45509
           0.0112        45.3338      0.0898008            632           5749          45978
           0.0112         64.678      0.0878867           1022           5624          44998
           0.0112        52.9951      0.0920059           1130           5893          47107
           0.0112        43.9251      0.0899375            778           5754          46048
           0.0112        38.8399       0.091375            561           5848          46784
            0.012        85.7766      0.0967539           1973           6196          49538
            0.012        71.2152      0.0969434           1302           6207          49635
            0.012         53.829      0.0963027           1112           6163          49307
            0.012        58.9363      0.0952012           1594           6091          48743
            0.012        101.367      0.0953926           2038           6105          48841
            0.012        63.5124      0.0971543           1679           6216          49743
            0.012          69.26      0.0970859           1814           6212          49708
            0.012        75.9025      0.0937344           3004           5998          47992
            0.012        57.9725      0.0947637           1848           6062          48519
            0.012         82.892       0.097752           1575           6260          50049
            0.012        74.7518       0.097666           1824           6249          50005
            0.012        47.5717      0.0959004            757           6141          49101
            0.012        89.6142      0.0962324           2177           6156          49271
            0.012        74.3503      0.0964141           2368           6169          49364
            0.012        45.3636      0.0956816            630           6122          48989
            0.012        116.309      0.0964141           3259           6168          49364
            0.012        48.2162      0.0934355            776           5980          47839
            0.012        73.2568      0.0971055           2477           6214          49718
            0.012        54.2978      0.0964258           1275           6171          49370
            0.012        55.5855      0.0960488           1125           6145          49177
           0.0128        86.7899      0.0994785           1717           6365          50933
           0.0128        139.726       0.101291           4182           6484          51861
           0.0128        110.176       0.103463           2116           6620          52973
           0.0128         93.193       0.101551           1687           6497          51994
           0.0128        154.919      0.0984941           3791           6306          50429
           0.0128        118.631      0.0997617           3100           6385          51078
           0.0128        93.1303       0.101195           2415           6476          51812
           0.0128        84.6079       0.100609           2845           6437          51512
           0.0128        95.6603       0.102377           1897           6552          52417
           0.0128        102.984       0.101232           2419           6479          51831
           0.0128        101.491       0.101891           2397           6521          52168
           0.0128        78.8601      0.0984023           1570           6297          50382
           0.0128        140.996       0.103469           4206           6622          52976
           0.0128        135.658       0.103678           3323           6635          53083
           0.0128        73.2338         0.1005           1204           6436          51456
           0.0128        119.816      0.0989141           2734           6332          50644
           0.0128        114.263       0.102039           2138           6534          52244
           0.0128        151.964       0.101145           3938           6474          51786
           0.0128        93.8458      0.0999531           2847           6395          51176
           0.0128        102.837       0.101186           2027           6480          51807
           0.0136        176.819       0.105846           4939           6772          54193
           0.0136        138.639       0.106592           2406           6820          54575
           0.0136        104.441       0.107131           2045           6858          54851
           0.0136        167.263        0.10659           2574           6820          54574
           0.0136        178.489       0.105947           4332           6778          54245
           0.0136        124.565       0.106332           2759           6807          54442
           0.0136        166.716       0.106066           4736           6790          54306
           0.0136        171.949       0.105941           3925           6781          54242
           0.0136        169.034       0.105871           3676           6776          54206
           0.0136         155.31       0.104488           3684           6687          53498
           0.0136         126.97       0.106104           3881           6792          54325
           0.0136        152.287        0.10643           3758           6814          54492
           0.0136         133.55       0.107482           2811           6879          55031
           0.0136        181.393        0.10715           3961           6858          54861
           0.0136        180.921       0.105008           3462           6723          53764
           0.0136        212.586       0.106787           4131           6835          54675
           0.0136        139.735       0.108283           2454           6930          55441
           0.0136        173.551       0.105045           4764           6723          53783
           0.0136        160.768        0.10543           4180           6749          53980
           0.0136         139.21       0.106416           2661           6807          54485
           0.0144         251.04       0.112725           5388           7216          57715
           0.0144        284.059       0.109633           6184           7017          56132
           0.0144        252.479       0.112645           5366           7212          57674
           0.0144        207.377       0.110375           4812           7063          56512
           0.0144        235.434       0.109473           4935           7006          56050
           0.0144        224.859       0.109848           4588           7030          56242
           0.0144        272.143         0.1109           5216           7099          56781
           0.0144        193.639       0.111057           4926           7112          56861
           0.0144         249.47       0.110369           5001           7060          56509
           0.0144        173.979       0.112104           3200           7172          57397
           0.0144          233.5       0.110869           4493           7095          56765
           0.0144        235.869       0.111312           3327           7124          56992
           0.0144        209.898       0.109326           5669           6996          55975
           0.0144        291.509        0.11042           4834           7065          56535
           0.0144        240.321       0.108799           5112           6958          55705
           0.0144        278.384       0.109451           5104           7003          56039
           0.0144        180.686       0.109469           3650           7009          56048
           0.0144        220.067       0.110465           4060           7069          56558
           0.0144        232.934       0.112482           4801           7198          57591
           0.0144        219.736        0.11225           4386           7186          57472
           0.0152        362.887       0.113275           6112           7254          57997
           0.0152        318.626       0.113561           6286           7264          58143
           0.0152        361.057       0.114654           5580           7339          58703
           0.0152        312.375       0.114191           5588           7307          58466
           0.0152         295.75       0.115018           6228           7359          58889
           0.0152        330.852       0.114385           6389           7321          58565
           0.0152        323.443       0.113564           6689           7266          58145
           0.0152        271.445       0.115121           4864           7369          58942
           0.0152        279.451       0.115338           4880           7380          59053
           0.0152        317.448       0.113053           4934           7234          57883
           0.0152        305.838       0.113484           5353           7261          58104
           0.0152        343.688       0.114061           6165           7295          58399
           0.0152        316.847       0.114588           5923           7334          58669
           0.0152        343.659       0.113961           5967           7296          58348
           0.0152         310.33       0.112766           5634           7222          57736
           0.0152          302.1       0.111467           6050           7135          57071
           0.0152        261.081       0.113955           5247           7290          58345
           0.0152        309.325       0.114396           5950           7321          58571
           0.0152        268.822          0.114           5609           7297          58368
           0.0152        339.575       0.115398           6452           7385          59084
];

rows = size(data, 1);
cols = size(data, 2);

data_delay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+1);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_delay = [data_delay; data(ifirst, 1:cols-5), avg ci];
end

figure(1);
hold on;
plot(data_delay(:,1), data_delay(:,2), symbol);

data_throughput = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+2);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_throughput = [data_throughput; data(ifirst, 1:cols-5), avg ci];
end

figure(2);
hold on;
plot(data_throughput(:,1), data_throughput(:,2), symbol);

data_maxdelay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+3);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_maxdelay = [data_maxdelay; data(ifirst, 1:cols-5), avg ci];
end

figure(3);
hold on;
plot(data_maxdelay(:,1), data_maxdelay(:,2), symbol);


%-------- Saturation Analysis -----------
slope=[];
for i=2:size(data_throughput,1),
    slope(i-1) = (data_throughput(i,2)-data_throughput(i-1,2))/(data_throughput(i,1)-data_throughput(i-1,1));
end

for i=2:size(slope,2),
    if slope(i) < (0.95*mean(slope(1:i)))
        max_pir = data_throughput(i, 1);
        max_throughput = data_throughput(i, 2);
        min_delay = data_delay(i, 2);
        break;
    end
end
